package entity

// Sentence 例句结构，包含原文和翻译
type Sentence struct {
	SContent    string `json:"sContent" bson:"sContent"`         // 例句原文内容
	SContentEng string `json:"sContent_eng" bson:"sContent_eng"` // 英文例句（带高亮）
	SSpeech     string `json:"sSpeech" bson:"sSpeech"`           // 例句发音URL
	SCn         string `json:"sCn" bson:"sCn"`                   // 例句中文翻译
}

// SourceInfo 考试来源信息
type SourceInfo struct {
	Paper string `json:"paper" bson:"paper"` // 试卷编号
	Level string `json:"level" bson:"level"` // 考试等级（如CET4）
	Year  string `json:"year" bson:"year"`   // 考试年份
	Type  string `json:"type" bson:"type"`   // 题目类型
}

// ExamSentence 真题例句结构
type ExamSentence struct {
	SContent   string     `json:"sContent" bson:"sContent"`     // 真题例句内容
	SourceInfo SourceInfo `json:"sourceInfo" bson:"sourceInfo"` // 真题来源信息
}

// Choice 选项结构
type Choice struct {
	ChoiceIndex int    `json:"choiceIndex" bson:"choiceIndex"` // 选项序号
	Choice      string `json:"choice" bson:"choice"`           // 选项内容
}

// Answer 答案结构
type Answer struct {
	Explain    string `json:"explain" bson:"explain"`       // 答案解释
	RightIndex int    `json:"rightIndex" bson:"rightIndex"` // 正确选项序号
}

// Exam 考题结构
type Exam struct {
	Question string   `json:"question" bson:"question"` // 题目内容
	Answer   Answer   `json:"answer" bson:"answer"`     // 答案信息
	ExamType int      `json:"examType" bson:"examType"` // 题目类型
	Choices  []Choice `json:"choices" bson:"choices"`   // 选项列表
}

// Synonym 同义词结构
type Synonym struct {
	W string `json:"w" bson:"w"` // 同义词
}

// SynonymGroup 同义词组
type SynonymGroup struct {
	Pos  string    `json:"pos" bson:"pos"`   // 词性
	Tran string    `json:"tran" bson:"tran"` // 翻译
	Hwds []Synonym `json:"hwds" bson:"hwds"` // 同义词列表
}

// RelatedWord 相关词结构
type RelatedWord struct {
	Hwd  string `json:"hwd" bson:"hwd"`   // 相关词
	Tran string `json:"tran" bson:"tran"` // 翻译
}

// RelatedWordGroup 相关词组
type RelatedWordGroup struct {
	Pos   string        `json:"pos" bson:"pos"`     // 词性
	Words []RelatedWord `json:"words" bson:"words"` // 相关词列表
}

// Translation 单词翻译
type Translation struct {
	TranCn string `json:"tranCn" bson:"tranCn"` // 中文翻译
	DescCn string `json:"descCn" bson:"descCn"` // 中文释义
	Pos    string `json:"pos" bson:"pos"`       // 词性
}

// WordContent 单词详细内容
type WordContent struct {
	Sentence struct {
		Sentences []Sentence `json:"sentences" bson:"sentences"` // 例句列表
		Desc      string     `json:"desc" bson:"desc"`           // 例句描述
	} `json:"sentence" bson:"sentence"`
	Exam             []Exam `json:"exam" bson:"exam"` // 练习题列表
	RealExamSentence struct {
		Sentences []ExamSentence `json:"sentences" bson:"sentences"` // 真题例句列表
		Desc      string         `json:"desc" bson:"desc"`           // 真题例句描述
	} `json:"realExamSentence" bson:"realExamSentence"`
	Usphone  string `json:"usphone" bson:"usphone"`   // 美式音标
	Ukphone  string `json:"ukphone" bson:"ukphone"`   // 英式音标
	Ukspeech string `json:"ukspeech" bson:"ukspeech"` // 英式发音URL
	Usspeech string `json:"usspeech" bson:"usspeech"` // 美式发音URL
	Phone    string `json:"phone" bson:"phone"`       // 通用音标
	Speech   string `json:"speech" bson:"speech"`     // 通用发音URL
	Star     int    `json:"star" bson:"star"`         // 重要程度/难度星级
	Syno     struct {
		Synos []SynonymGroup `json:"synos" bson:"synos"` // 同义词组列表
		Desc  string         `json:"desc" bson:"desc"`   // 同义词描述
	} `json:"syno" bson:"syno"`
	RelWord struct {
		Rels []RelatedWordGroup `json:"rels" bson:"rels"` // 相关词组列表
		Desc string             `json:"desc" bson:"desc"` // 相关词描述
	} `json:"relWord" bson:"relWord"`
	Trans []Translation `json:"trans" bson:"trans"` // 翻译列表

}

// WordDict 单词词典条目
type WordDict struct {
	WordRank int    `json:"wordRank" bson:"wordRank"` // 单词排名/序号
	HeadWord string `json:"headWord" bson:"headWord"` // 单词
	Content  struct {
		Word struct {
			WordHead string      `json:"wordHead" bson:"wordHead"` // 单词标题
			WordId   string      `json:"wordId" bson:"wordId"`     // 单词唯一标识
			Content  WordContent `json:"content" bson:"content"`   // 单词详细内容
		} `json:"word" bson:"word"`
	} `json:"content" bson:"content"`
	BookId string `json:"bookId" bson:"bookId"` // 所属词书ID
}
